/**
 * @author Li
 * @Date 2023/4/24 19:24
 */
public class ReadMe {
    /**
     * get请求和post请求
     *
     * 1.get请求一般是去取获取数据（其实也可以提交，但常见的是获取数据）；
     * post请求一般是去提交数据。
     *
     * 2.get因为参数会放在url中，所以隐私性，安全性较差，请求的数据长度是有限制的，
     * 不同的浏览器和服务器不同，一般限制在 2~8K 之间，更加常见的是 1k 以内；
     * post请求是没有的长度限制，请求数据是放在body中；
     *
     * 3.get请求刷新服务器或者回退没有影响，post请求回退时会重新提交数据请求。
     *
     * 4.get请求可以被缓存，post请求不会被缓存。
     *
     * 5.get请求会被保存在浏览器历史记录当中，post不会。get请求可以被收藏为书签，因为参数就是url中，但post不能。它的参数不在url中。
     *
     * 6.get请求只能进行url编码（appliacation-x-www-form-urlencoded）,post请求支持多种（multipart/form-data等）。
     *
     *
     * 7.servlet的生命周期
     * init只会执行一次
     * service每次访问都会执行
     * destroy 在程序正常结束后会执行
     *
     * 8.对于继承HttpServlet然后重写方法？应该重写哪一个
     * doGet：以后做查询使用
     * doPost：以后做更新使用（增加修改删除） 涉及安全问题使用
     *
     *
     * 9.@WebServlet("/") 当我们的项目中的Servlet配置"/",会覆盖掉Tomcat中的DefaultServlet，
     * 当输入的路径都不匹配时都会走这个Servlet，输入的路径正确时则不走这里
     * @WebServlet("/*") 匹配任意访问路径
     *
     *
     *
     * 10.请求和响应
     *request
     * 前端数据请求后台然后发送给前端
     * 得到前端的数据
     * 存入req
     * 在jsp页面${}得到数据
     * servlet作用域
     * request 只针对当前请求转发的页面
     * session  req.getSession()当前会话期(同一个浏览器不同窗口)都能得到里面的数据
     * application  req.getServletContext() 跨浏览器也可以得到数据
     *
     *11. response
     *重定向：resp.sendRedirect("index.jsp");
     * 浏览器地址直接变为新地址
     *访问地址： http://localhost:8081/w
     * 最后显示地址：http://localhost:8081/index.jsp
     * 页面转发：req.getRequestDispatcher().forward(req,resp);
     *    浏览器地址不变
     *
     * 12.重定向不能进行数据共享
     * 单纯的页面跳转用重定向
     * 想要获得数据用页面转发
     *
     * 13.重定向和页面转发的区别？
     * 数据走向：(1)点击页面转发——将数据username的值传递到java后台
     *         (2)在注解d中得到数据，存入req.setAttribute()，转发到页面
     *         (3)在页面通过${}接收后台数据
     *
     * 14.第三阶段使用页面转发和重定向
     * 第四阶段之后使用  resp.getWriter().println(username);给前端传递数据
     * response响应给前端数据
     * 15.请求和响应,都应该有乱码处理
     *
     * 16.步骤
     *  (1)乱码处理
     *  (2)得到前端的值
     *  (3)将值进行封存入req
     *  (4)可能的逻辑处理
     *  (5)页面转发或者重定向
     *
     *
     *17.jsp
     * 三层架构： 表现层（controller）：接收请求，封装数，调用业务逻辑层，据响应数据
     * 业务逻辑层（service）：对业务逻辑进行封装，组合数据访问层层中基本功能，形成复杂的业务逻辑功能
     * 数据访问层（dao/Mapper）：对数据库的CRUD基本操作
     * MVC
     * model 业务处理
     * view 视图界面展示
     * Controller 控制层。处理请求，调用模型和视图
     *
     *
     * 18.servlet 五大步骤
     * （1）乱码
     * （2）接收前端数据
     * （3）封装model
     * （2）调用service服务逻辑层
     * （2）响应给前端
     * service 服务逻辑层
     * dao  数据访问层 数据持久层
     */
}
